import '../../models/comic_chapter_model.dart';
import '../../utils/http_helper.dart';
import '../home/model/comic_detail_model.dart';

class ChapterRepository {
  final HttpUtil _http = HttpUtil();

  /// 请求指定章节（使用你提供的接口： Comic/GetComicChapter?chapterId=xxx ）
  Future<ComicChapterModel?> fetchChapterById(String chapterId) async {
    final res = await _http.getModel<ComicChapterModel>(
      'Comic/GetComicChapter',
      params: {'chapterId': chapterId},
      fromJson: (json) =>
          ComicChapterModel.fromJson(json as Map<String, dynamic>),
    );
    // 添加调试信息
    print('API Response Status: ${res?.status}');
    print('API Response Result: ${res?.result}');

    // 检查状态码 - 可能需要改为 200 而不是 0
    if (res != null && (res.status == 0 || res.status == 200)) {
      return res.result;
    }
    return null;
  }

  /// 尝试获取“下一章”的逻辑（默认实现：检查 current JSON 中是否包含 nextId 或 nextChapterId 字段）
  /// 如果你后端有独立接口，请把此方法实现为调用那个接口并返回对应 ComicChapterModel
  Future<ComicChapterModel?> fetchNextChapter(
      ComicChaptersModel current) async {
    // 1) 常见后端会在 result 中带 nextId 或 nextChapterId 等字段 —— 这里尝试从 current.key / desc 等解析（仅示例）
    //    如果你后端并不在当前返回里包含 nextId，应该在此处调用具体的 "get next chapter" API
    try {
      // 示例：如果后端把 next id 放在 key 字段，使用就绪：
      final possibleNextId = current.chapterId ?? '';
      if (possibleNextId.isNotEmpty) {
        final next = await fetchChapterById(possibleNextId);
        if (next != null) return next;
      }
    } catch (_) {}

    // 2) 如果没有可用 nextId，直接返回 null（调用方应处理：没有更多章节或显示提示）
    return null;
  }
}
